The following abbreviations are herewith defined, at least some of which are referred to within the following description of the state-of-the-art and the present invention.    CPU Central Processing Unit    IP Internet Protocol    L2 Layer 2 (data link layer of the OSI reference model)    L3 Layer 3 (network layer of the OSI reference model)    LAN Local Area Network    MAC Media Access Control    NI Network Interface    OSI Open Systems Interconnection    PC Personal Computer    TCAM Ternary Content Addressable Memory    TCP Transmission Control Protocol    VLAN Virtual LAN
Computers may be connected to one another to form a computer network, for example a LAN (local area network) implemented by an enterprise of some kind. Computers connected together in this way may share data and computing resources and allow users to communicate and work with each other. The LAN or other network may be small, consisting of only a small number of computers and networking devices, or it may be very large, as in the case of a large company, university, or government agency. It may be isolated, that is, capable of communicating only within the network itself, but more typically present-day networks are also interconnected with other networks such as the Internet as well.
Data transmitted to and from the computers in a network is segmented at the transmitting device into discrete units such as packets or frames. Each unit of data traverses the network, or a number of networks, before reaching its intended destination. The receiving device can then reassemble the data into a suitable form for processing or storage. In most instances, the data units do not travel directly from the sending to the receiving devices, which are often not directly connected to one another, but are instead transmitted via a number of intermediate nodes such as bridges, switches, or routers.
To ensure the proper transmission of data units, standard protocols have been developed. For example, Ethernet is a layer 2 protocol used by many LANs. “Layer 2” is a reference to the data link layer of the OSI model. The OSI model is a hierarchical description of network functions that extends from the physical layer 1 to application layer 7. The MAC (media access control) layer is considered a part of layer 2. In MAC bridging, the MAC addresses that are assigned to each node are “learned” so that intermediate nodes come to associate one of their ports with one or more MAC addresses. When a frame of data is received it includes a destination MAC address and is forwarded, or “bridged”, on the appropriate port.
TCP/IP is a layer 3, or network layer protocol. A received data packet includes an IP (Internet protocol) address that is read by a device such as a router, which is in possession of information enabling the router to determine a path to the destination node and route the packet accordingly. Although layer 3 routing is somewhat more involved, and in some cases slower than layer 2 bridging, there are situations in which it is advantageous or necessary. Many modern network nodes perform both bridging and routing functions.
One such device is an NI (network interface—sometimes referred to as an NI card), which in many networks may be positioned, for example, to directly communicate with another network or with a user device such as a PC or laptop. The routing function of the NI maybe used, for example, to direct received packets to a specific subnetwork or VLAN (virtual LAN) within the network itself. Two or more NIs may be functionally tied together and, in some cases, housed in the same chassis, or housing. This implementation environment is sometimes referred to as a multi-NI platform (or multi-NI chassis, as applicable). As just one example, one NI may offload L3 routing traffic to another NI, for during the initialization and synchronization process as described in U.S. patent application Ser. No. 12/816,871, entitled Method and System for Handling Traffic in a Data Communication System, filed on 16 Jun. 2010, which is incorporated herein by reference.
In a multi-NI environment, ports on each NI often receive or transmit data traffic from and to certain other devices, to which they are connected by one or more physical link. Received data traffic is then forwarded toward its intended destination, in most cases by the NI at which it was received. At times, however, traffic may ingress at a particular NI at a rate higher than it can handle, or at least higher than it can handle with a particular quality of service level. When this occurs, a portion of the received traffic that would otherwise have been routed if the incoming traffic rate were not so great is simply dropped. While some network protocols may provide for the eventual retransmission of dropped packets, dropping them introduces both delay and the inefficient use of network resources. A manner of minimizing the number of dropped packets even at high traffic levels would therefore be of great advantage, especially if it could be accomplished without the need for user intervention. Of course, a faster CPU (central processing unit) could be installed in the NI, enabling more traffic to be routed. This solution, however, is not always possible or desirable. A great deal of expense may be incurred, for example, to install capacity that is in some cases infrequently needed. And of course a CPU operable at the desired speed may not be available at all or technically feasible.
Note that the description of related art in this disclosure is for the purpose of describing the operational environment of the present invention but is not an admission that any solution described is generally or specifically known to anyone other than the inventors.
Accordingly, there has been and still is a need to address the aforementioned shortcomings and other shortcomings associated with data traffic handling in certain situations, such as when the NI experiences traffic rates so high that all of the traffic cannot be satisfactorily handled. These needs and other needs are addressed by the present invention.